perm filename ALLHEU[DIS,DBL]1 blob
sn#215675 filedate 1976-05-17 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .ASEC(AM's Heuristics)
C00004 00003 .ASSECP(Heuristics for dealing with Anything)
C00005 00004 .ASSECP(Heuristics for dealing with Any-concept)
C00008 00005 .ASSECP(Heuristics for dealing with Operations)
C00011 00006 .ASSECP(Heuristics for dealing with Predicates)
C00014 ENDMK
C⊗;
.ASEC(AM's Heuristics)
This appendix lists all the heuristics with which AM is initially
provided. They are organized by concept, most general concepts
first. Within a concept, they are organized by facet:
.BN
⊗8#⊗* Fillin: rules for filling in new entries on various facets.
⊗8#⊗* Check: rules for patching up existing entries on various
facets.
⊗8#⊗* Suggest: rules which propose new tasks to break AM out of
stagnant loops.
.E
<<Should the heurs be duplicated in the ALLCON appendix, too?>
Each heuristic is presented in English translation. Whenever there is
a very tricky, non-obvious, or brilliant translation of some English
clause into LISP, a brief note will follow about how that is coded.
Also, for each rule, is listed some example(s) of its use, and its
overall importance. If the rule is actually used within the main
portion of this document, the relevant page(s) are listed within
square brackets. Concepts which have no heuristics are not present
in this appendix.
.ASSECP(Heuristics for dealing with Anything)
.ASSECP(Heuristics for dealing with Any-concept)
⊗5 Fillin⊗*
All these rules actually can be viewed as beginning: "If the current
task is (Fillin Examples of X), where X is any concept...".
This extra "precondition" will not be repeated below, for each rule.
.BH
λλ To fill in examples of X, where X is a kind of Y (for some more
general concept Y),
Check the examples of Y; some of them may be examples of X as well.
.ES
For the task of filling in examples of Primes, this rule would have
AM notice that Primes is a kind of Number, and therefore look over
all the known examples of Number.
.BH
λλ If some (but not most) examples of X are also examples of Y (for some
concept Y),
Create a new concept defined as the intersection of those 2 concepts
(X and Y).
.ES
When AM notices that some primes are palindromic, this rule will create a
brand new concept, defined as the set of numbers which are both palindromic
and prime.
.BH
If very few examples of X are found,
Then add the following task to the agenda: "Generalize the concept
X", for the following reason: "X's are quite rare; a slightly less
restrictive concept might be more interesting".
.ES
Of course, AM contains a precise meaning for the phrase "very few".
When AM looks for primes
among examples of already-known kinds of numbers,
it will find dozens of non-examples for every example of a prime it
uncovers. "Very few" is thus naturally implemented as a
statistical confidence level.
⊗5 Suggest⊗*
⊗5 Check⊗*
.ASSECP(Heuristics for dealing with Operations)
.BH
λλ If the current task was (Fill-in examples of F),
and F is an operation from domain space A into range space B,
and more than 100 items are known examples of A (in the domain of F),
and more than 10 range items (in B) were found by applying F to these
domain items,
and at least 1 of these range items is a distinguished member (esp: an
extremum) of B,
.OOO
Then (for each such distinguished member "b"εB) create the following new concept:
.E
.WBOX(16,8)
MBOX Name: F-Inverse-of-b $
MBOX Definition: λ (x) ( F(x) is b ) $
MBOX Generalization: A $
MBOX Worth: Average(Worth(A), Worth(F), Worth(B), Worth(b), ||Examples(B)||) $
MBOX Interest: Any conjecture involving both this concept and either F or Inverse(F) $
.EBOX
.BH ONCE INDENT 4,8,0
In case the user asks, the reason for doing this is:
"Worthwhile
investigating those A's which have an unusual F-value, namely, those
whose F-value is b"
The total amount of time to spend right now on all of these new
concepts is computed as:
.ONCE INDENT 8
Half the remaining cpu time in the current
task's time quantum.
.ES
This rule says to investigate the inverse image of an unusual
item b, under the interesting operation f. When b=2 and
f=number-of-divisors-of, this rule leads to the definition
of prime numbers.
.ASSECP(Heuristics for dealing with Predicates)
Each of these heuristics can be assumed to be prefaced by a
claus of the from "If the current task is to deal with concept X,
where X isa Predicate,...". This will be repeated below, for each rule.
⊗5 Fillin⊗*
.BH
If the current task was (Fill-in examples of X),
and X is a predicate,
and more than 100 items are known in the domain of X,
and at least 10 cpu seconds were spent trying to randomly instantiate
X,
and the ratio of successes/failures is both >0 and less than .05
.OOO
Then add the following task to the agenda: (Fill-in generalizations
of X), for the following reason:
"X is rarely satisfied; a slightly less restrictive concept might be
more interesting".
This reason's rating is computed as three times the ratio of
nonexamples/examples found.
.ES
This rule says to generalize a predicate if it rarely succeeds (returns T).
One use for this was when Equality was found to be quite rare; the resultant
generalizations did indeed turn out to be more valuable (numbers).
A similar use was found for predicates which tested for identical equality
of two angles, of two triangles, and of two lines. Their generalizations
were also valuable (congruence, similarity, parallel, equal-measure).